package javaBase.basicType;

public class JavaStringTest {
	/**
	 * ””、null、new String() 三者的区别。null 表示 string 还没有 new ，也就是说对象的引用还没有创建，
	 * 也没有分配内存空间给他，而””、newString() 则说明了已经 new 了，只不过内部为空，但是它创建了对象的引用，
	 * 是需要分配内存空间的。打个比方：一个空玻璃杯，你不能说它里面什么都没有，因为里面有空气，
	 * 当然也可以把它弄成真空，null与” “、new String() 的区别就象真空与空气一样
	 **/
	public static void main(String[] args) {
		String s = "abcdeabcde";
		String s1 = "abcdE";
		//1、字符串比较
		System.out.println(s.equals(s1));
		System.out.println(s.compareTo(s1));
		System.out.println(s.compareToIgnoreCase(s1));
		System.out.println(s==s1);
		System.out.println(s.equalsIgnoreCase(s1));
		//2、字符串查找
		/*charAt(int index) ——返回指定索引 index 位置上的字符，索引范围从 0 开始。
		indexOf(String str)——从字符串开始检索str，并返回第一次出现的位置，未出现返回 -1。
		indexOf(String str，int fromIndex);——从字符串的第 fromIndex 个字符开始检索 str。
		lastIndexOf(String str)——查找最后一次出现的位置。
		lastIndexOf(String str，int fromIndex)—-从字符串的第fromIndex个字符查找最后一次出现的位置。
		starWith(String prefix，int toffset)—–测试此字符串从指定索引开始的子字符串是否以指定前缀开始。
		starWith(String prefix)——测试此字符串是否以指定的前缀开始。
		endsWith(String suffix)——测试此字符串是否以指定的后缀结束。*/
		System.out.println(s.charAt(3));
		System.out.println(s.indexOf("c"));
		System.out.println(s.indexOf("b", 3));
		System.out.println(s.lastIndexOf("c",2));		
		System.out.println(s.lastIndexOf("d"));
		System.out.println(s.startsWith("abc", 5));
		System.out.println(s.startsWith("abc"));
		System.out.println(s.endsWith("e"));
		
	}
}
